package com.shujia.day15.ketang;

import java.util.ArrayList;
import java.util.Collections;

/*
    Collections：是java针对集合操作专门提供的一个工具类

    静态方法：
        public static <T> void sort(List<T> list)
        public static <T> int binarySearch(List<?> list,T key)
        public static <T> T max(Collection<?> coll)
        public static void reverse(List<?> list)
        public static void shuffle(List<?> list)

 */
public class CollectionsDemo1 {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(34);
        list1.add(7);
        list1.add(12);
        list1.add(734);
        list1.add(38);
        list1.add(29);
        System.out.println(list1);

        System.out.println("-------------------------------");
        //public static <T> void sort(List<T> list)
        Collections.sort(list1); // 底层是调用了Arrays工具类中的sort方法
        System.out.println(list1);

        //public static <T> int binarySearch(List<?> list,T key)
        // 二分查找【前提是序列是有序的】
        //[7, 12, 29, 34, 38, 734]
        System.out.println(Collections.binarySearch(list1, 100));

        //public static <T> T max(Collection<?> coll) 求集合中最大值
        System.out.println(Collections.max(list1));
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("hello");
        list2.add("world");
        list2.add("java");
        list2.add("apple");
        list2.add("hadoop");
        System.out.println(Collections.max(list2));

        //public static void reverse(List<?> list)
        Collections.reverse(list1);
        System.out.println(list1);

        System.out.println("===========================");
        //public static void shuffle(List<?> list)  随机打乱元素
        Collections.shuffle(list1);
        System.out.println(list1); // [34, 734, 38, 7, 12, 29]  [34, 12, 7, 38, 29, 734]

    }
}
